












'''
dir(list)

['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__
iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setat
tr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']


### 序列List


序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置，或索引，第一个索引是0，第二个索引是1，依此类推。
Python有6个序列的内置类型，但最常见的是列表和元组。
序列都可以进行的操作包括索引，切片，加，乘，检查成员。
此外，Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型，它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表，只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示：

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

与字符串的索引一样，列表索引从0开始。列表可以进行截取、组合等。


--------------------------------------------------------------------------------
访问列表中的值
使用下标索引来访问列表中的值，同样你也可以使用方括号的形式截取字符，如下所示：
实例(Python 3.0+)

#!/usr/bin/python3
 
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
 
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])

运行实例 »
以上实例输出结果：
list1[0]:  Google
list2[1:5]:  [2, 3, 4, 5]

--------------------------------------------------------------------------------
更新列表
你可以对列表的数据项进行修改或更新，你也可以使用append()方法来添加列表项，如下所示：
实例(Python 3.0+)

#!/usr/bin/python3
 
list = ['Google', 'Runoob', 1997, 2000]
 
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])



注意：我们会在接下来的章节讨论append()方法的使用
以上实例输出结果：
第三个元素为 :  1997
更新后的第三个元素为 :  2001
--------------------------------------------------------------------------------
删除列表元素
可以使用 del 语句来删除列表的的元素，如下实例：
实例(Python 3.0+)

#!/usr/bin/python3
 
list = ['Google', 'Runoob', 1997, 2000]
 
print (list)
del list[2]

print ("删除第三个元素 : ", list)
以上实例输出结果：
删除第三个元素 :  ['Google', 'Runoob', 2000]
注意：我们会在接下来的章节讨论 remove() 方法的使用
--------------------------------------------------------------------------------
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表，* 号用于重复列表。
如下所示：
Python   表达式  结果描述

len([1, 2, 3])                      3                            长度     
 [1, 2, 3] + [4, 5, 6]        [1, 2, 3, 4, 5, 6]                 组合
 
['Hi!'] * 4                      ['Hi!', 'Hi!', 'Hi!', 'Hi!']     重复

3 in [1, 2, 3]                    True                            元素是否存在于列表中

for x in [1, 2, 3]: print(x, end=" ")        1 2 3                迭代

--------------------------------------------------------------------------------

Python列表截取与拼接
Python的列表截取与字符串操作类型，如下所示：
L=['Google', 'Runoob', 'Taobao']
操作：

Python表达式        结果                      描述
L[2]                     'Taobao'            读取第三个元素
L[-2]                    'Runoob'            从右侧开始读取倒数第二个元素: count from the right
L[1:]         ['Runoob', 'Taobao']          输出从第二个元素开始后的所有元素




>>>L=['Google', 'Runoob', 'Taobao']
>>> L[2]      
'Taobao'
>>> L[-2]
'Runoob'
>>> L[1:]
['Runoob', 'Taobao']
>>>

列表还支持拼接操作：


>>>squares = [1, 4, 9, 16, 25]
>>> squares + [36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


--------------------------------------------------------------------------------
嵌套列表
使用嵌套列表即在列表里创建其它列表，例如：


>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'


--------------------------------------------------------------------------------
Python列表函数&方法
Python包含以下函数:

序号          函数
1              len(list)列表元素个数
2              max(list)返回列表元素最大值
3              min(list)返回列表元素最小值
4              list(seq)将元组转换为列表


Python包含以下方法:


序号                        方法
1                list.append(obj)在列表末尾添加新的对象
2                list.count(obj)统计某个元素在列表中出现的次数
3                list.extend(seq)在列表末尾一次性追加另一个序列中的多个值（用新列表扩展原来的列表）
4                list.index(obj)从列表中找出某个值第一个匹配项的索引位置
5                list.insert(index, obj)将对象插入列表
6                list.pop([index=-1]])移除列表中的一个元素（默认最后一个元素），并且返回该元素的值
7                list.remove(obj)移除列表中某个值的第一个匹配项
8                list.reverse()反向列表中元素
9                list.sort(cmp=None, key=None, reverse=False)对原列表进行排序
10               list.clear()清空列表
11               list.copy()复制列表








#### list 学习汇总
>>> ranks = [str(n) for n in range(2, 11)] + list('JQKA')
>>> print(ranks)
['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
>>> 


a= [str for str in range(2,11)]
>>> a
[2, 3, 4, 5, 6, 7, 8, 9, 10]

 a+list('123')
[2, 3, 4, 5, 6, 7, 8, 9, 10, '1', '2', '3']


>>> suits = 'spades diamonds clubs hearts'.split()
>>> print(suits)
['spades', 'diamonds', 'clubs', 'hearts']
>>> 

suits.append('apple')

suits.extend(['apple','huawei'])

suits.insert(1,'牡丹')
suits.insert(0,'牡丹')
#删除list中的元素


suits.remove('牡丹')

del(suits[0])

suits.pop()
name = suits.pop()

suits.pop(1)

###列表分片
suits[1,3]


###复制list时使用，不是引用的情况

suits[:]

suits[1:]

suits[:3]

suits * 3 #列表复制3次

suits + suits

>>> list1 = [1,2,3]
>>> list2 =['4',5,6]

>>> list1 + list2
[1, 2, 3, '4', 5, 6]
>>> list1 + list1
[1, 2, 3, 1, 2, 3]
>>> 

>>> list1 *3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> 

#######   in    not in 
>>> 1 in list1
True
>>> '1' in list1
False
>>> 
----------------------------------------------------------------------------------------------------
查看list下面的参数和方法
dir（list)

>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> 
实际测试
---------------------------------------------------------------------------------------------------------------


>>> lists
['333']
>>> lists[0]
'333'
>>> lists[0]=123
>>> lists[0]
123
>>> lists.insert(0,223)
>>> lists
[223, 123]

>>> lists.append([123,345,454])
>>> lists
[223, 123, [123, 345, 454]]






'''